SQL UNION ALL Operator

दो या दो से अधिक SELECT स्टेटमेंट के परिणाम-सेट को संयोजित करने के लिए UNION ALL ऑपरेटर के बारे में जानें

SQL UNION ALL Operator क्या हैं?

UNION ALL ऑपरेटर का उपयोग दो या दो से अधिक SELECT स्टेटमेंट के परिणाम-सेट को संयोजित करने के लिए किया जाता है।

UNION ALL ऑपरेटर में डुप्लिकेट सहित प्रत्येक कथन की सभी पंक्तियाँ शामिल हैं।

यूनियन ऑल के लिए आवश्यकताएँ:

  • UNION ALL में प्रत्येक SELECT स्टेटमेंट में कॉलम की संख्या समान होनी चाहिए
  • कॉलम में भी समान डेटा प्रकार होने चाहिए
  • प्रत्येक SELECT स्टेटमेंट में कॉलम एक ही क्रम में होने चाहिए

यूनियन सभी वाक्यविन्यास

SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

नोट:

UNION ऑपरेटर डिफ़ॉल्ट रूप से डुप्लिकेट मान हटा देता है, लेकिन UNION ALL में डुप्लिकेट मान शामिल होते हैं।

प्रदर्शन डेटाबेस

इस अभ्यास में हम प्रसिद्ध नॉर्थविंड मॉडल डेटाबेस का उपयोग करेंगे।

नीचे "ग्राहक" तालिका से एक चयन दिया गया है:

ग्राहक तालिका

+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| CustomerID | CustomerName                   | ContactName    | Address           | City     | PostalCode | Country |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| 1          | Alfreds Futterkiste            | Maria Anders   | Obere Str. 57     | Berlin   | 12209      | Germany |
| 2          | Ana Trujillo Emparedados...    | Ana Trujillo   | Avda. Constitución| México   | 05021      | Mexico  |
| 3          | Antonio Moreno Taquería        | Antonio Moreno | Mataderos 2312    | México   | 05023      | Mexico  |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+

और "आपूर्तिकर्ता" तालिका से एक चयन:

आपूर्तिकर्ता तालिका

+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+
| SupplierID | SupplierName                | ContactName       | Address         | City         | PostalCode | Country |
+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+
| 1          | Exotic Liquid               | Charlotte Cooper  | 49 Gilbert St.  | London       | EC1 4SD    | UK      |
| 2          | New Orleans Cajun Delights  | Shelley Burke     | P.O. Box 78934  | New Orleans  | 70117      | USA     |
| 3          | Grandma Kelly's Homestead   | Regina Murphy     | 707 Oxford Rd.  | Ann Arbor    | 48104      | USA     |
+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+

SQL UNION ALL उदाहरण

निम्नलिखित SQL कथन "ग्राहक" और "आपूर्तिकर्ता" तालिकाओं से शहर (डुप्लिकेट मान सहित) लौटाता है:

उदाहरण

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;

निष्कर्ष

City
Ann Arbor
Berlin
London
London
México
México
New Orleans

एसक्यूएल यूनियन सभी कहां से

निम्नलिखित SQL कथन "ग्राहक" और "आपूर्तिकर्ता" तालिकाओं से जर्मन शहरों (डुप्लिकेट मानों सहित) को लौटाता है:

उदाहरण

SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;

यूनियन बनाम यूनियन सभी दृश्य प्रतिनिधित्व

ग्राहकों के शहर

Berlin
México
México
London

आपूर्तिकर्ताओं के शहर

London
New Orleans
Ann Arbor

यूनियन परिणाम

Ann Arbor
Berlin
London
México
New Orleans

डुप्लिकेट हटा दिए गए

यूनियन सभी परिणाम

Ann Arbor
Berlin
London
London
México
México
New Orleans

सभी डुप्लिकेट जोड़े गए

टिप्पणी:UNION स्वचालित रूप से डुप्लिकेट मानों को हटा देता है, लेकिन UNION ALL सभी डुप्लिकेट मानों को सुरक्षित रखता है।

यूनियन बनाम यूनियन सभी तुलना

UNION

  • डुप्लिकेट पंक्तियाँस्वचालित रूप से हटा देता है
  • केवल अद्वितीय मान लौटाता है
  • धीरे-धीरे कार्य कर सकते हैं (अद्वितीयता की जाँच करना)
  • डेटा अखंडता के लिए उपयुक्त
  • कम पंक्तियाँ लौटाता है
SELECT City FROM Table1
UNION
SELECT City FROM Table2;

UNION ALL

  • डुप्लिकेट पंक्तियाँसुरक्षा करता है
  • सभी मान लौटाता है
  • तेज़ (विशिष्टता की जाँच नहीं की गई है)
  • संपूर्ण डेटा के लिए उपयुक्त
  • अधिक पंक्तियाँ लौटाता है
SELECT City FROM Table1
UNION ALL
SELECT City FROM Table2;

प्रदर्शन नोट:

उन स्थितियों में यूनियन ऑल का उपयोग करें जहां डुप्लिकेट की आवश्यकता नहीं है, क्योंकि यह तेज़ है क्योंकि यह विशिष्टता की जांच नहीं करता है।

प्रदर्शन प्रतिक्रिया

यूनियन ऑल तेज है

विशिष्टता की जाँच करने की कोई आवश्यकता नहीं है

-- तेज तालिका 1 से * चुनें संघ सब तालिका2 से चुनें *;

यूनियन धीमा है

विशिष्टता की जाँच करें

-- धीमा तालिका 1 से * चुनें संघ तालिका2 से चुनें *;

बड़े डेटाबेस

बड़ी तालिकाओं के लिए UNION ALL का उपयोग करें

-- बड़े डेटा के लिए उपयुक्त लार्जटेबल1 से ग्राहक आईडी चुनें संघ सब लार्जटेबल2 से ग्राहक आईडी चुनें;

मामलों का प्रयोग करें

संपूर्ण आँकड़े

सभी मामलों को शामिल करते हुए सांख्यिकीय विश्लेषण के लिए

SELECT 'Customer' AS Type, City 
FROM Customers
UNION ALL
SELECT 'Supplier', City 
FROM Suppliers;

लॉग गणना

संपूर्ण रिकार्ड गिनती के लिए

SELECT COUNT(*) AS TotalCount
FROM (
    SELECT * FROM Table1
    UNION ALL
    SELECT * FROM Table2
) AS CombinedTable;

डेटा संबंध

अनेक स्रोतों से डेटा एकीकृत करें

SELECT ProductName FROM CurrentProducts
UNION ALL
SELECT ProductName FROM ArchivedProducts;

अभ्यास

SQL UNION ऑपरेटर का प्राथमिक उद्देश्य क्या है?

सम्मिलित स्तंभों के साथ एक नई तालिका बनाने के लिए
✗ ग़लत! UNION कोई नई तालिका नहीं बनाता है
किसी तालिका में डुप्लिकेट पंक्तियाँ हटाएँ
✗ ग़लत! ये DISTINCT या DELETE का काम है
Self join करना
✗ ग़लत! सेल्फ जॉइन एक अन्य प्रकार का जॉइन है
दो या दो से अधिक SELECT कथनों के परिणाम-सेटों को संयोजित करना
✓ ठीक है! UNION ऑपरेटर का उपयोग एकाधिक SELECT क्वेरीज़ के परिणामों को एक एकल परिणाम सेट में संयोजित करने के लिए किया जाता है